﻿#ifndef USER_H
#define USER_H

#include <QObject>
#include <QString>
#include <QNetworkAccessManager>    // 包含Qt网络访问管理器类的定义，用于处理网络请求
#include <QNetworkRequest>          // 包含Qt网络请求类的定义，用于构建网络请求
#include <QNetworkReply>            // 包含Qt网络回复类的定义，用于处理网络响应
#include <QUrl>                     // 包含Qt URL类的定义，用于表示和操作URL
#include <QDebug>                   // 包含Qt调试输出宏定义
#include <QJsonDocument>
#include <QJsonObject>
#include <QJsonArray>
#include <vector>
#include <QVariant>
#include <httppostrequest.h>

class User : public QObject
{
    Q_OBJECT
public:
    explicit User(QObject *parent = 0);

signals:
    void user_login_after();
    void user_register_after();
    void user_get_cur_user_info_after();


public slots:
    void user_login_finished();
    void user_register_finished();
    void user_get_cur_user_info_finished();

private:


public:
    QString jwt_token;
    HttpPostRequest *request = new HttpPostRequest();

    QString get_jwt_token() { return jwt_token; }
    void set_jwt_token(QString token) { jwt_token = token; }

    QString username;
    QString id_kind_string;
    int id_kind;
    int id;

    void user_login(QJsonObject &data);
    void user_register(QJsonObject &data);
    void user_get_cur_user_info();
    void user_logout();

    void get_detail_info();
    bool user_is_login() { return this->get_jwt_token().size() != 0;}

};

#endif // USER_H
